From 3eb76c0940cbd8da8c56f035d1a967e84f4008fd Mon Sep 17 00:00:00 2001 From: "James M. Cape" Date: Wed, 3 Nov 2004 10:26:18 +0000 Subject: [PATCH] Don't mysteriously go to the parent dir when hitting "Cancel" in folder 2004-11-03 James M. Cape * gtk/gtkfilechooserbutton.c (update_dialog), (dialog_response_cb): Don't mysteriously go to the parent dir when hitting "Cancel" in folder mode (fixes #156971). --- ChangeLog | 6 ++++++ ChangeLog.pre-2-10 | 6 ++++++ ChangeLog.pre-2-6 | 6 ++++++ ChangeLog.pre-2-8 | 6 ++++++ gtk/gtkfilechooserbutton.c | 29 ++++++++++++++++++++--------- 5 files changed, 44 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index 763d8421bf..f019d343ee 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2004-11-03 James M. Cape + + * gtk/gtkfilechooserbutton.c (update_dialog), (dialog_response_cb): + Don't mysteriously go to the parent dir when hitting "Cancel" in + folder mode (fixes #156971). + 2004-11-03 Matthias Clasen * gtk/gtkaccellabel.c (gtk_accel_label_expose_event): Don't diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 763d8421bf..f019d343ee 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,9 @@ +2004-11-03 James M. Cape + + * gtk/gtkfilechooserbutton.c (update_dialog), (dialog_response_cb): + Don't mysteriously go to the parent dir when hitting "Cancel" in + folder mode (fixes #156971). + 2004-11-03 Matthias Clasen * gtk/gtkaccellabel.c (gtk_accel_label_expose_event): Don't diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 763d8421bf..f019d343ee 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,9 @@ +2004-11-03 James M. Cape + + * gtk/gtkfilechooserbutton.c (update_dialog), (dialog_response_cb): + Don't mysteriously go to the parent dir when hitting "Cancel" in + folder mode (fixes #156971). + 2004-11-03 Matthias Clasen * gtk/gtkaccellabel.c (gtk_accel_label_expose_event): Don't diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 763d8421bf..f019d343ee 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,9 @@ +2004-11-03 James M. Cape + + * gtk/gtkfilechooserbutton.c (update_dialog), (dialog_response_cb): + Don't mysteriously go to the parent dir when hitting "Cancel" in + folder mode (fixes #156971). + 2004-11-03 Matthias Clasen * gtk/gtkaccellabel.c (gtk_accel_label_expose_event): Don't diff --git a/gtk/gtkfilechooserbutton.c b/gtk/gtkfilechooserbutton.c index f2b59d299d..502b061529 100644 --- a/gtk/gtkfilechooserbutton.c +++ b/gtk/gtkfilechooserbutton.c @@ -1435,17 +1435,26 @@ update_dialog (GtkFileChooserButton *button) gtk_file_chooser_unselect_all (GTK_FILE_CHOOSER (priv->dialog)); if (folder_part) { - full_path = gtk_file_system_make_path (fs, folder_part, file_part, NULL); - /* Entry contents don't exist. */ - if (full_path) - _gtk_file_chooser_select_path (GTK_FILE_CHOOSER (priv->dialog), - full_path, NULL); + if (file_part && file_part[0] != '\0') + { + full_path = gtk_file_system_make_path (fs, folder_part, file_part, + NULL); + if (full_path) + { + _gtk_file_chooser_select_path (GTK_FILE_CHOOSER (priv->dialog), + full_path, NULL); + gtk_file_path_free (full_path); + } + else + _gtk_file_chooser_set_current_folder_path (GTK_FILE_CHOOSER (priv->dialog), + folder_part, NULL); + } else - _gtk_file_chooser_set_current_folder_path (GTK_FILE_CHOOSER (priv->dialog), - folder_part, NULL); - - gtk_file_path_free (full_path); + { + _gtk_file_chooser_set_current_folder_path (GTK_FILE_CHOOSER (priv->dialog), + folder_part, NULL); + } } break; @@ -1571,7 +1580,9 @@ dialog_response_cb (GtkFileChooser *dialog, } else { + g_signal_handler_block (priv->dialog, priv->dialog_selection_changed_id); update_dialog (user_data); + g_signal_handler_unblock (priv->dialog, priv->dialog_selection_changed_id); } gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->button), FALSE); -- 2.30.2